﻿namespace HydraShellServer.Services
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;
    using System.Linq;
    using System.ServiceModel.DomainServices.Hosting;
    using System.ServiceModel.DomainServices.Server;
    using AbstraX.Contracts;
    using HydraShellServer.Contracts;
    using AbstraX.ServerInterfaces;
    using Hydra.Shell;
    using HydraShellServer.Implementations;

    [EnableClientAccess()]
    public class HydraSynchronizerService : DomainService, IAbstraXService
    {
        public IDomainHostApplication DomainServiceHostApplication { get; set; }

        protected IHydraPackageHost PackageHost
        {
            get
            {
                return (IHydraPackageHost)this.DomainServiceHostApplication;
            }
        }

        [Query]
        public IQueryable<SynchronizationUpdate> ProcessQuery(string element, string path)
        {
            return new SynchronizationUpdate[0].AsQueryable();
        }

        [Query]
        public IQueryable<SynchronizationUpdate> GetUpdates()
        {
            return new SynchronizationUpdate[0].AsQueryable();
        }

        [Invoke]
        public void LoadService(Guid packageGuid, string type)
        {

        }

        [Invoke]
        public void LoadPackage(Guid packageGuid, string type)
        {

        }
    }
}


